package cn.com.surker.erp;

import cn.com.surker.erp.entity.material.ErpSupplier;
import cn.com.surker.system.entity.DataSourceInfo;

/**
 * erp的供应商
 *
 * @author luotao
 * @date 2024/6/4
 */
public interface IErpSupplierService {

	/**
	 * 查询erp数据
	 *
	 * @param ds   数据源
	 * @param type 类型
	 * @param code 社会信用代码
	 * @param name 供应商名称
	 * @return
	 */
	ErpSupplier queryErpDataByCodeAndName(DataSourceInfo ds, Integer type, String code, String name);

	/**
	 * 根据集团唯一码查询erp供应商
	 *
	 * @param ds      数据源
	 * @param type    类型
	 * @param groupId groupid
	 * @return
	 */
	ErpSupplier queryErpDataByGroupId(DataSourceInfo ds, Integer type, Long groupId);

	/**
	 * 保存erp数据
	 *
	 * @param oaSupplierId oa系统中的数据id
	 * @param fullName     供应商全程
	 * @param code         供应商社会信用码
	 * @param orgId        站点
	 * @param type         供应商类型
	 */
	void saveErp(Long oaSupplierId, String fullName, String name, String code, Long orgId, Integer type);

	void saveErpV1(DataSourceInfo ds, Long oaSupplierId, String fullName, String name, String code, Integer type);

	//	禁用erp中的数据
	void disableErpData(DataSourceInfo ds, Integer type, String code);

	/**
	 * 启用erp中的数据
	 *
	 * @param ds
	 * @param type
	 * @param code
	 * @param groupId
	 */
	void enableErpData(DataSourceInfo ds, Integer type, String code, Long groupId);

	/**
	 * 更新erp数据
	 *
	 * @param erpId
	 * @param fullName
	 * @param code
	 * @param type
	 */
	void updateErpData(DataSourceInfo ds, Long erpId, String fullName, String name, String code, Integer type);


	void syncErp2OaSupplier();

	void syncOa2ErpSupplier();

}
